//? 快速排序 核心是设置锚点 两边分别递归
//? 时间复杂度最好O(nlog2n) 最坏O(n2)（数组有序） 不稳定 空间O(log2n)
const fast = (arr) => {
    if (arr.length <= 1) return arr
    const flag = arr[0]
    let leftArr = []
    let rightArr = []
    for (let i = 1; i < arr.length; i++) {
        if (arr[i] > flag) rightArr.push(arr[i])
        else leftArr.push(arr[i])
    }
    return [...fast(leftArr), flag, ...fast(rightArr)]
}
console.log(fast([3,4,6,1,7,0,5]))
